A New Structural Induction Scheme for Proving Properties of Mutually Recursive Concepts
نویسندگان
چکیده
Structural induction schemes have been used for mechanically proving properties of self-recursive concepts in previous research. However, based on those schemeq, it becomes very difficult to automatically generate the right induction hypotheses whenever the conjectures are involved with mutually recursive concepts. This paper will show that the difficulties come mainly from the weak induction schemes provided in the past, and a strong induction scheme is needed for the mutually defined concepts. Furthermore, a generalized induction principle is provided to smoothly integrate both schemes. Thus, in this mechanical induction, hypotheses are generated by mixing strong induction schemes with weak inductions schemes. While the weak induction schemes are suggested by selfrecursive concepts, the strong induction schemes are suggested by mutually recursive concepts.
منابع مشابه
Eeective Support for Mutually Recursive Types
For purposes of formal analysis, it is common to form a model of a system within a logic. This sometimes requires the introduction of new types which are mutually recursive. HOL90 has possessed for several years now two excellent libraries for mutually recursive types. Despite their powerful functionality, they are discovered to be diicult to use in practice. The input speciications of the mutu...
متن کاملStructural Induction Principles for Functional Programmers
User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages. Properties of programs defined by recursion on the structure of recursive types are generally proved by structural induction on the type. It is well known in the theorem proving community how to generate structural induction principles from data ...
متن کاملAutomatic Generation of Generalization Lemmas for Proving Properties of Tail-Recursive Definitions
Automatically proving properties of tail-recursive function definitions by induction is known to be challenging. The difficulty arises due to a property of a tail-recursive function definition typically expressed by instantiating the accumulator argument to be a constant only on one side of the property. The application of the induction hypothesis gets blocked in a proof attempt. Following an a...
متن کاملProving properties of programs by structural induction
This paper discusses the technique of structural induction for proving theorems about programs. This technique is closely related to recursion induction but makes use of the inductive definition of the data structures handled by the programs. It treats programs with recursion but without assignments or jumps. Some syntactic extensions to Landin's functional programming language ISWIM are sugges...
متن کاملMulti-Predicate Induction Schemes for Mutual Recursion
Where mutually recursive data types are used in programming languages, etc., mutually recursive functions are usually required. Mutually recursive functions are also quite common for non-mutually recursive types. Reasoning about recursive functions requires some form of mathematical induction but there have been difficulties in adapting induction methods for simple recursion to the mutually rec...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1987